查看原文
其他

云原生的进一步具象化

bluedavy HelloJava 2023-06-18

云原生这个概念已经越来越深入人心了,但对云原生到底是什么,仍然是各种各样的解读,最近对云原生具体是什么有了点感触,写下来分享和探讨下。


我现在认为云原生其实是让众多的公司,通过基于云的产品迅速获得在构建一个现在这个时代的应用(是不是有点像AWS一直讲的Modern Applications)必须的各种基础能力(极强的规模伸缩性、极高的可用性、极低的创新/运营成本、大数据的分析/运营能力等等),而不需要像以前的很多公司为了具备这些能力,投入巨大,或者用另外一句话可以解读云原生就是专业的基础能力普惠化,随手可得。


现在这个时代的应用和很多年前的应用面临的状况差别太大了,这个和现在的业务面临的激烈竞争和玩法有很大的关系,我以前一直觉得像阿里在发展过程中积累的很多能力,外面很少有公司会需要,但现在来看完全不一样了,就像当年百亿、千亿美金的公司是多么难才出现,但现在则完全不一样,所以这也奠定了现在这个时代的应用在技术层面能力的要求也远不一样了,简单说几个:

  1. 对可用性的要求比以前的应用高多了,现在的应用通常来说一上线对可用性要求就已经不低了,因为一旦出问题就很容易把用户送给竞对;

  2. 对伸缩性的能力要求也远比以前高,指的是两方面,一是团队规模,现在的很多业务的公司很容易很快就发展到百人以上,而百人以上的研发效率怎么还保持尽量不下降,这对系统的伸缩能力是有很高的要求的,二是用户规模,现在很多的业务的用户规模可以很快的突破百万、千万的规模,这就要求系统必须能根据用户规模快速的伸缩;

  3. 创新和运营的成本必须低,业务竞争无比激烈,快是关键,所以怎么在不需要太大投入的情况下能快速上线各种业务,是无比重要的,另一个方面就是运营的成本,这个是和现在应用的用户规模、激烈竞争都相关;

  4. 大数据的玩法,现在的很多业务对获客、推荐、搜索等的大数据化要求还是相当高的。


阿里是一家自己发展过程中,逐步碰到了各种上面的挑战(当年的竞争环境基本还不会要求一个业务上来就把各种能力具备好),但以前也没有云可以用,所以在这个过程中不断的积累了各种能力,现在通过开源、云商业化对外输出这些能力,使得即使到了现在这样的竞争环境下,各种有业务创新想法的同学们,还是基本可以像当年一样快速上线业务,而不是要先投入巨多力量、花费巨多时间把需要的基础能力打磨出来。


简单看下阿里的这个过程,我自己并没有完全经历,主要还是简单说下我自己经历的一些。

  1. 在2007年,淘宝在基础的能力上面临的最大问题是伸缩性,两个现象当时都出现了,用户数大量增长,加机器已经基本要加到瓶颈了,研发人员大量增长,研发效率下滑非常明显,在那个阶段淘宝做了一轮非常重要的架构改造,磨练出了例如服务框架、消息中间件、分库分表方案、分布式文件系统、分布式缓存等等基础技术产品,结合业务架构的重新设计,很好的解决掉了伸缩性的问题;

  2. 在2009年,淘宝面临了可用性问题,经常出各种故障,开始积累各种监控、快速恢复、tracing、系统设计里例如非关键路径异步化等各种技能,可用性这块的投入一直在持续,到后来为解双11这种特殊情况的可用性的确定性的诉求而创造的全链路压测,通过同城双活、异地多活的多机房体系构建的更强的容灾能力以及快速恢复能力等等,以及在线下场景加入后面临的不一样的可用性方案等等,日积月累,积累了越来越多各种场景的高可用方案,也使得业务的可用性越来越更有保障;

  3. 大概在2011年,开始觉得未来在资源投入上的运营成本可能会非常夸张,于是在2011年开始了通过容器化来提升机器的使用效率,成本优化也是一直持续的工作,后来又持续通过云资源弹性来解双11这类型的短时高峰的成本投入的问题,通过在线离线混部解大数据机器投入越来越大、在线机器集群又利用率不高浪费的问题,在这么多年的努力下,才使得在业务仍然高速增长的情况下,机器资源投入上的运营成本还是相对可控的。


像上面讲的这些,阿里都是依靠巨大的人力投入,巨多的场景打磨,并且还是好多年的持续投入才逐渐形成的能力,而现在的业务,则可以用云原生的方式来构建,使得自己上来就具备这些能力,至少能够让自己在现在的激烈业务竞争环境,体验要求更高的业务竞争环境中不会在这些基础能力上拖后腿,而是可以花更多的精力,时间,资源在真正的业务创新上,这样具象化的云原生我觉得对整个社会的创新还是相当有价值的。

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存